Emulating of information flow

ABSTRACT

The object of the invention is a method for emulating the two-way information flow of a real application in a system, which comprises a first network element ( 101 ) and a second network element ( 102 ), as well as a packet network ( 103 ) between said first network element and said second network element. The method comprises transmitting a set of packets from the first network element ( 101 ) through the packet network ( 103 ) to the second network element ( 102 ). At the second network element, at least part of the transmitted packets are received. In a return transmission, a packet arrived at the second network element is transmitted back to the first network element only after a selected delay from the receiving of the packet at the second network element. The object of the invention is also a system, a network element and a computer program product implementing the method.

BACKGROUND OF THE INVENTION

1. Technical Field

The present invention relates to the emulating of the two-wayinformation flow of a real application. Particularly, but notnecessarily, the invention relates to the emulating of the informationflow of a VoIP (Voice over Internet Protocol) call for determining theQuality of Service (QoS) at a VoIP application level.

2. Discussion of Related Art

Traditionally, when calling by telephone speech has been transferred incircuit-switched networks, such as in a Public Switched TelephoneNetwork (PSTN). When calling by telephone in a digital circuit-switchednetwork, a permanent connection of 64 kbps (kilo bits per second) is setup for each call. The standard band of the connection, 64 kbps, is dueto the bit rate required in the sampling of analog speech when using8-bit Pulse Code Modulation (PCM) at a sampling frequency of 8 kHz,which procedure enables the transmitting of analog speech having afrequency of 300 to 3400 Hz in a digital format.

The digital telephone network described above that is presently incommon use is, however, very ineffective and thus consumes a lot ofnetwork resources. In the telephone network, the band for a connectionis also reserved when the connection is not used actively, i.e. neitherparty of the connection is transferring information, such as speech ordata, along the connection. The kind of use of a static band consumes alot of data transmission resources, and as a result of this additionalcapacity must be invested in as the number of users increases. The typeof ineffectiveness described above causes problems especially in callsbetween continents, where increasing the data transmission capacity isnot as easy as in other cases. The problem is also partly manifest incall prices; expensive investments in capacity must be covered by highuser charges.

To compensate and supplement calls that use a static band reservation ina telephone network, so-called VoIP calls, i.e. IP calls have beenstarted to be marketed. Typically, the information transmitted in an IPcall, such as speech, voice and/or video, is first converted from ananalog format into a digital format, then compressed and converted intoIP packets that are conveyed over an IP-based packet-switched network,such as the Internet network, sharing the band with other IP traffic. InIP calls, a band can be used in a considerably more effective way thanin calls that reserve a static band, which is also shown in call prices.In addition, also new more effective coding schemes can be used, such ase.g. G.723.1 coding.

The time of arrival of transmitted IP packets to a receiver is not knownbefore the packets arrive. And because IP routes the information flowpacket by packet the time of propagation of packets from a sender to areceiver may vary greatly and the order of the packets may change.Furthermore, packets may be lost, for example, as a result of theoverflows of incoming data that take place in the buffers of routers. Byusing a reliable protocol over IP, for example, packet losses can beidentified automatically at a protocol level and the lost packets can beretransmitted. One such protocol is TCP (Transmission Control Protocol).

However, the retransmissions in question would cause additional varyingdelay in the transmission of information over the IP network. And sinceseveral applications used in repeating speech and/or picture transferredin real time do not function flawlessly if, for example, too much delayoccurs in the transmission of information, TCP is not well suited foruse as a protocol to be used over IP in IP calls. Therefore, UDP (UserDatagram protocol), where there are no retransmissions, is normally usedin IP calls. Instead, in a call setup, the use of TCP is recommendableso that the call setup would take place as reliably as possible.

For example, just for the reason that the applications used in repeatingrealtime information transmitted over an IP network have high realtimerequirements in order to function flawlessly, at least some kind ofarrangement is needed to guarantee the desired Quality of Service (QoS)for the IP call in question. IP as such does not provide QoS support ina form that it would provide a guaranteed Quality of Service. However,several different techniques exist with which a guaranteed QoS can beprovided in an IP network. These are, among others, DiffServ(Differentiated Services) and IntServ (Integrated Services) techniques.Irrespective of which QoS technique is used, it is important that theQoS can be measured in order to find out whether it is really possibleto provide a guaranteed QoS for each IP call.

Usually, several QoS parameters are required to describe a QoS. Thus, itis appropriate to measure values for a set of different QoS parameters,which in connection with VoIP are, for example, the following:end-to-end delay, end-to-end delay jitter, packet losses and packet losscorrelation. Of these, end-to-end delay means the time that it takes foran IP packet to pass through an IP network from a sender to a receiver.End-to-end delay can also be measured as a round trip measurement,whereupon the time that it takes for an IP packet to pass from a senderto a receiver and back is measured. End-to-end jitter can be denoted,for example, as a standard deviation or variance. Packet losses tell howmany of the transmitted IP packets fail to be received on the receivingside, i.e. how many IP packets are lost on the way. As for the systemperformance, it is highly significant whether IP packets disappear orare lost one here and another there (no packet loss correlation) orwhether several successive IP packets are lost (high packet losscorrelation).

FIG. 1 shows a principle of one QoS measurement according to prior art.There a stream of IP packets is transmitted from a first host 101through an IP network 103 to a second host. Before transmitting, thefirst host 101 adds a first information to each IP packet to betransmitted. The stream of IP packets transmitted by the first host 101is received at the second host 102, which adds a second information tothe IP packets and returns them through the IP network 103 back to thefirst host 101, which adds a third information to the received IPpackets.

FIG. 2 illustrates the structure of an IP packet, the use of which iswell known in the QoS measurement arrangement illustrated in FIG. 1. AnIP packet 200 comprises various types of fields for storing theinformation added by hosts to the IP packet. For example, in fields 201and 202, the first host 101 stores just before transmitting the IPpacket as said first information a time stamp data TS₁ and a packetsequence number data SEQ₁ respectively. In fields 203 and 204, thesecond host 102 stores as said second information on receiving the IPpacket a time stamp data TS₂ and a packet sequence number data SEQ₂respectively. After receiving the IP packet, the second host 102 returnsthe IP packet immediately back to the first host 101 which stores, in afield 205, as said third information a time stamp data TS₃ on receivingthe IP packet. Now, of the QoS parameters, e.g. end-to-end delay d_(rt)can be determined by equationd _(rt) =TS ₃ −TS ₁.

In addition to the fields 201-205, the IP packet 200 in FIG. 2 comprisesa dummy length 206. The dummy length 206 is a data portion of a specificlength with which the length of the IP packet can be adapted to the sizeof the packets of a realistic codec, such as G.711. If the IP packets200 are yet transmitted as such a typically uniform stream of IP packetsas is formed by a realistic codec, a real IP call and its QoSmeasurements can be emulated by the arrangement presented above.

However, the arrangement according to prior art described above has itsproblems. Let us assume that a stream of IP packets 200 is sent from thefirst host 101 through the IP network 103 to the second host 102 andthat the transmitting of the IP packets from the first host to thesecond takes place uniformly. In an ideal case, the time of transmissionof all the IP packets (end-to-end delay) from the first host to thesecond is the same, whereupon the IP packets sent from the first hostwould also arrive at the second host uniformly. However, in reality, thesituation is typically such that, for example, due to a varying IPnetwork load IP packets do not arrive at the second host uniformly butburstily. By this is meant that the stream of IP packets arriving at thesecond host comprises densities (clusters of IP packets) and spacings(there is an exceptionally long pause between IP packets) instead of asteady stream.

When the second host now returns each IP packet it has received back tothe first host, the stream of returned IP packets is already on leavingthe second host bursty and not uniform as it would be in the case of arealistic IP call. In this case, the QoS experienced by the burstystream of IP packets returning from the second host to the first host isnormally worse than the QoS experienced by the stream of IP packetstransmitted uniformly from the first host to the second host. Thisasymmetry is not characteristic of a real IP call and it distorts themeasuring of the values of QoS parameters. Furthermore, if IP packetssent by the first host are lost on their way to the second host, thestream of IP packets returned from the second host to the first has lessIP packets than in the original stream of IP packets sent from the firsthost to the second. In this case, additional spacings are automaticallyformed in the stream of IP packets returned from the second host to thefirst, which again increases asymmetry.

Thus, the measurement arrangement according to the prior art presentedabove is not suited in the best possible way for the QoS measurements ofan IP call.

SUMMARY OF INVENTION

An object of the present invention is to provide a method, system,network element and computer program better suited for making QoSmeasurements of an IP call.

According to a first aspect of the invention, there is implemented amethod for emulating the two-way information flow of a real applicationin a system, which comprises a first network element and a secondnetwork element, as well as a packet network between said first networkelement and said second network element, which method comprises:

transmitting a set of packets from the first network element through thepacket network to the second network element;

receiving at least part of the transmitted packets at the second networkelement;

transmitting the received packets from the second network elementthrough the packet network back to the first network element in responseto the receiving of the packets at the second network element.

It is characteristic of the method that it comprises:

transmitting a packet arrived at the second network element back to thefirst network element only after a delay from the receiving of thepacket at the second network element.

According to a second aspect of the invention, there is implemented asystem for emulating the two-way information flow of a real application,which system comprises a first network element and a second networkelement, as well as a packet network between said first network elementand said second network element, which first network element comprises:

means for transmitting a set of packets from the first network elementthrough the packet network to the second network element, and the secondnetwork element comprises:

means for receiving at least part of the transmitted packets at thesecond network element;

means for transmitting the received packets from the second networkelement through the packet network back to the first network element inresponse to the receiving of the packets at the second network element.

It is characteristic of the system that the second network elementfurther comprises:

means for transmitting a packet arrived at the second network elementback to the first network element only after a delay from the receivingof the packet at the second network element.

According to a third aspect of the invention, there is implemented anetwork element for emulating the two-way information flow of a realapplication in a system, which in addition to said network elementcomprises a specific first network element and a packet network betweenthe network element and said first network element, which networkelement comprises:

means receiving packets transmitted from said first network elementthrough the packet network;

means for transmitting the received packets through the packet networkback to the first network element in response to the receiving of thepackets at the network element.

It is characteristic of the network element that the network elementfurther comprises:

means for transmitting the received packets through the packet networkback to the first network element in response to the receiving of thepackets at the network element.

It is characteristic of the network element that the network elementfurther comprises:

means for transmitting a packet arrived at the network element back tothe first network element only after a delay from the receiving of thepacket at the network element.

According to a fourth aspect of the invention, there is implemented acomputer program product executable in a network element for emulatingthe information flow of a real application in a system, which inaddition to said network element comprises a specific first networkelement and a packet network between the network element and said firstnetwork element, which computer program product comprises a programcode:

for receiving at the network element packets transmitted from the firstnetwork element through the packet network;

for transmitting the received packets through the packet network back tothe first network element in response to the receiving of the packets atthe network element.

It is characteristic of the computer program product that the computerprogram product comprises a program code:

for transmitting a packet arrived at the network element back to thefirst network element only after a delay from the receiving of thepacket at the network element.

In a preferred embodiment of the invention, said network elements arecomputers, such as PCs (Personal Computer), workstation computers ornetwork server computers, and said packets are communication packets,such as IP packets. The present invention enables better emulating ofthe two-way information flow of a real application, such as theinformation flow of an IP call, at an application level with uniformstreams of IP packets and signalling than is known from prior art andthus, the performing of more reliable QoS measurements than the knownsolutions. The invention can be used, among other things, in networkdesigning and for testing the performance of a network from theviewpoint of VoIP.

By the term IP network is meant in this description besides networksbased on IP, such as Internet and Intranet networks, also other similarpacket networks, such as the X.25 network. By the IP call is meant acall where information, preferably speech, voice, video or multimedia,is transferred over this kind of network typically for implementing arealtime service. Thus, the invention can also be used for emulating avideoconference.

BRIEF DESCRIPTION OF THE DRAWINGS

In the following, the invention will be described in detail by referringto the enclosed drawings, in which

FIG. 1 shows the principle of one QoS measurement according to priorart;

FIG. 2 shows the structure of an IP packet used in one QoS measurementaccording to prior art;

FIG. 3 illustrates the structure of an IP packet suitable for theimplementation of one embodiment of the invention;

FIG. 4 shows an exemplary case with the help of which one embodiment ofthe invention is illustrated;

FIG. 5 is a diagram of a time domain illustrating the exemplary caseshown in FIG. 4; and

FIG. 6 illustrates hardware for implementing the invention.

DETAILED DESCRIPTION OF THE DRAWING

FIGS. 1 and 2 were already explained above in connection with thedescription of the prior art. Next, a preferred embodiment of theinvention will be explained where an IP call between a first host and asecond host is emulated and QoS measurements are performed. Roughly,FIG. 1 can also illustrate a measurement arrangement according to theinvention. In a preferred embodiment of the invention, a first host 101transmits through an IP network 103 to a second host 102 a similaruniform stream of IP packets as is formed by a realistic codec, such asG.711, where the size of the IP packets corresponds to the size of thepackets formed by the real codec. The IP packets are preferablytransmitted by using UDP over IP. FIG. 3 illustrates the structure of anIP packet, which is used in the preferred embodiment of the invention.An IP packet 300 comprises various types of fields for storing theinformation added by the hosts to each IP packet at specific moments oftime. In fields 301 and 302 of each IP packet, the first host 101 storesas first information just before transmitting each IP packet 300 a timestamp data TS₁ and a packet sequence number data SEQ₁ respectively. Forexample, when transmitting a first IP packet the first host stores asthe time stamp data of TS₁ of the IP packet in question the time oftransmission of the IP packet in question and as the sequence numberdata SEQ₁, the number 1. Correspondingly as the time stamp data TS₁ of asecond IP packet the transmitting time of the second IP packet is storedand as the sequence number SEQ₁, the number 2 and so on.

As the IP packets of the stream of IP packets arrive at the second host102, the second host stores in fields 303 and 304 each IP packet assecond information a time stamp data TS₂ and a packet sequence numberdata SEQ₂ respectively. When the first IP packet (which is notnecessarily the IP packet the first host transmitted first) of thestream of IP packets arrives at the second host, the second host thenstores the time of arrival of the IP packet in question at the secondhost as the time stamp data TS₂ of the IP packet in question and thenumber 1 as the sequence number data SEQ₂. Correspondingly, the time ofarrival of the second IP packet at the second host is stored as the timestamp data TS₂ of the IP packet in question and the number 2 as thesequence number SEQ₂, and so on.

However, according to the invention, the IP packets arrived at thesecond host are not returned immediately to the first host, but they (ortheir data) are guided into a buffer at the second host from where theyare then transmitted in the order of arrival back to the first host as asimilar uniform stream of IP packets as is formed by a realistic codecused in an IP call. In this way, asymmetry can be eliminated in thetransmitting of IP packets better than in solutions known from priorart. When transmitting each buffered IP packet back to the first host,the second host stores in a field 305 of each IP packet as thirdinformation a time stamp data TS₃. The transmitting time of each IPpacket is stored as the time stamp data TS_(3.)

As the IP packets of the stream of IP packets returned from the secondhost to the first host arrive at the first host, the first host storesin a field 306 of each IP packet as fourth information a time stamp dataTS₄. The time of arrival of each IP packet at the first host is storedas the time stamp data TS₄. Preferably, for indicating the sequence inwhich the IP packets return to the first host a new sequence numberindicator (e.g. SEQ₃) is not required if the received IP packets (or thedata comprised by them) are stored in the same sequence as they arrivedat the first host. Naturally, using the sequence number indicator SEQ₃in connection with the invention is possible however.

In addition to the fields 301-306, the IP packet 300 in FIG. 3 comprisesa dummy length 307. The dummy length 307 is a data portion of a specificlength which does not necessarily have any significance other than thatwith it the length of an IP packet can be adapted to the size of thepackets of a realistic codec, such as G.711. In addition to the fieldsshown in FIG. 3, the IP packet 300 typically comprises IP and UDPheaders, among other things, for the address information and portnumbers of a sender and a receiver. The content of the fields 301-307can be called by the term payload.

Now, of the QoS parameters, a round trip end-to-end delay d_(rt) can bedetermined by the equation d_(rt,new)=TS₄−TS₁−(TS₃−TS₂). If the clocksof the first and second hosts have been synchronised, one-way end-to-enddelays can be calculated by using the equations d_(ow,1)=TS₂−TS₁ (thetrip for the first host to the second) and d_(ow,2)=TS₄−TS₃ (the returntrip from the second host to the first). In synchronising the hosts,e.g., GPS (Global Positioning System) can be used.

Material for calculating the end-to-end delay jitter is obtained, forexample, by calculating the differences between the time stamps TS₂ ofsuccessive IP packets arrived at the second host. On the basis of thedifferences, for example, the standard deviation and/or variance of theend-to-end delay jitter (from the first host to the second host) canthen be calculated.

Packet losses can be found out when the number of transmitted IP packetsis known. In this case, when the stream of IP packets has gone the roundtrip between the first and second hosts, for example, the number ofpackets lost during the first part can be found out by subtracting thenumber of IP packets arrived at the second host from the number ofpackets transmitted.

Packet loss correlation (here from the first host to the second host)can be examined by studying the sequence numbers SEQ₁ of the IP packetsreceived at the second host and by seeing which sequence numbers aremissing.

Next, the implementation of the preferred embodiment of the inventionwill be presented in more detail with the help of an exemplary case byreferring to FIGS. 4 and 5 of which FIG. 4 shows the basic arrangementin the exemplary case and FIG. 5 is the diagram of a time domain forillustrating the exemplary case. In FIG. 5, the left time axis shows thetime according to the clock of the first host and the right time axisshows the time according to the clock of the second host. The clocks ofthe first and second hosts can be synchronised with each other.

Let us assume that the number of IP packets to be transmitted N=4. Intransmitting the IP packets, the transmitting interval of IP packetsformed by a realistic codec, be it Δt_(ti), is emulated. Prior to theQoS measurements, a message is sent from the first host to the secondhost, wherein the values of the parameters N, Δ_(ti) and a selectedbuffer delay Δt_(buf) are indicated to the second host. It must be notedhere that although for reasons of simplicity in this exemplary case thenumber of IP packets transmitted N=4, in reality the number of IPpackets transmitted can be considerably higher, e.g., several hundredsor thousands.

Now, from the first host 101 to the second host 102 through the IPnetwork 103 a stream of IP packets is transmitted where, in a first IPpacket (packet A), the sequence number SEQ₁=1 and the time stamp TS₁ arestored just before the transmitting of the IP packet in question at themoment of time t₁, in a second IP packet (packet B), the sequence numberSEQ₁=2 and the time stamp TS₁ are stored at the moment of time t₂, in athird IP packet (packet C), the sequence number SEQ₁=3 and the timestamp TS₁ are stored at the moment of time t₃, and in a fourth IP packet(packet D), the sequence number SEQ₁=4 and the time stamp TS₁ are storedat the moment of time t₄. The IP packets are transmitted at intervals ofΔt_(ti), whereupon t₂−t₁=Δt_(ti , t) ₃−t₂=Δt_(ti) and t₄−t₃=Δt_(ti).Said moments of time t₁, t₂, t₃ and t₄ are according to the clock of thefirst host.

After getting the message from the first host, in which message thenumber of the IP packets transmitted N is indicated to be four, thesecond host stores in a specific (transmitting) buffer four IP packetsthe sequence numbers of which are SEQ₂=−1 (the first IP packet to betransmitted from the buffer (packet E)), SEQ₂=−2 (the second packet(packet F)), SEQ₂=−3 (the third packet (packet G)), SEQ₂=−4 (the fourthpacket (packet H)).

After receiving, at the moment of time t₅, the first of the IP packetstransmitted by the first host, which here is the IP packet (packet A)that was also transmitted first (this is not always the case, e.g. ifthe first IP packet is lost on the way), the second host stores in theIP packet in question (packet A) the time stamp TS₂ and stores as thesequence number SEQ₂=1. After this, the second host copies the timestamp and sequence number data (TS₁, SEQ₁=1, TS₂ and SEQ₂=1) of the IPpacket in question (packet A) in the IP packet (packet E) that is in thebuffer the first in turn to be transmitted whereupon, among otherthings, in the IP packet that is in the buffer the first in turn to betransmitted, the sequence number (packet E) SEQ₂=−1 is substituted bythe number 1. The packet E is now transmitted from the second host tothe first host after the buffer delay Δt_(buf), at the moment of timet₁₁=t₅+Δt_(buf). Just before transmitting, the second host stores, inthe packet E, the time stamp TS₃. This takes place approximately at themoment of time t₁₁.

When the stream of IP packets to be returned has now begun, the otherthree IP packets (packets F, G and H) waiting to be transmitted in thebuffer of the second host at intervals of Δt_(ti) at the moments of timet₁₂ (packet F), t₁₃ (packet G), and t₁₄ (packet H), whereupon if for thepackets E, F, G and H index numbers j=1, 2, 3, 4 respectively are used,the transmitting time t_(1j) of each packet according to the clock ofthe second host is obtained from the equation t_(1j)=t₅+Δt_(buf)+(j−1)Δt_(ti).

Correspondingly, when receiving some other (than the packet A describedabove) IP packet belonging to a stream of IP packets sent from the firsthost to the second host, the second host stores in the received packetthe time stamp TS₂ and the sequence number SEQ_(2,) after which thesecond host copies the data of the received IP packet in such an IPpacket in the transmitting buffer of the second host that is next inturn to be transmitted, wherein the data of some arrived IP packet hasnot yet been copied. Before transmitting each IP packet, the second hostyet stores in each packet to be transmitted the time stamp TS₃. Thus, inthe situation illustrated by FIGS. 4 and 5, after receiving the packet Bthe second host stores therein the time stamp TS₂ at the moment of timet₆ and the sequence number SEQ₂=2, because the packet B is the second IPpacket that arrives at the second host. The data of the packet B arecopied in the packet F waiting to be transmitted in the bufferwhereupon, among other things, the sequence number of the packet FSEQ₂=−2 is substituted by the number 2. The packet F is transmitted atthe moment of time t₁₂. Just before transmitting the time stamp TS₃ isstored in the packet F.

Next, a situation where a packet loss takes place will be examined inthe exemplary case shown in FIGS. 4 and 5. Let us assume that the packetC disappears and fails to arrive at the second host. Because the bufferdelay Δt_(buf) in this case is so long that the packet (packet D)transmitted next nevertheless manages to arrive at the second host atthe moment of time t₈, which is before the transmitting time of thepacket G t₁₃=t₅+Δt_(buf)+2 Δt_(ti) (the packet G is the packet whereinthe data of the packet C should be copied for return transmission),instead of the lost packet C the data of the packet D (TS₁, SEQ₁=4, TS₂and SEQ₂=3) are copied in the packet G whereupon, among other things,the sequence number of the packet G SEQ₂=−3 is substituted by the number3. The packet G is transmitted at the moment of time t₁₃. The time stampTS₃ is stored in the packet G just before transmitting.

Because the packet C failed to arrive at the second host, there is nosuch IP packet arrived at the second host from which data would notalready have been copied in some packet, whereupon there is nothing tocopy in the packet H. In order that a uniform stream of IP packets couldbe maintained, the packet H is nevertheless transmitted as a so-calleddummy packet (filling packet) at the moment of time of transmission t₁₄,although it does not now comprise values based on real time stamp andsequence number data for TS₁, SEQ₁ and TS₂. Before transmitting the timestamp TS₃ is stored in the packet H. Since a new sequence number SEQ₂was not copied in the packet H either, the original negative sequencenumber SEQ₂=−4 remains as the sequence number of the packet H.

When the packets E, F, G and H arrive at the first host at the momentsof time t₁₅, t₁₆, t₁₇ and t₁₈ respectively, the first host storestherein the time stamps TS₄. For the QoS parameters, values can now bedetermined as was already described above. If the sequence number ofsome received IP packet SEQ₂ is negative, the first host will identifyit as a dummy packet, whereupon it does not take into account theinformation possibly found in the fields 301 (TS₁), 302 (SEQ₁) and/or303 (TS₂) of the dummy packet, because this information is not based onreal time stamp or sequence number data. The existence of dummy packetsin the returned steam of IP packets normally means that at least one ofthe IP packets originally transmitted from the first host to the secondhas failed to arrive at the second host or has arrived there too late.In the invention, however, error situations like this have been takeninto consideration in the manner presented above (e.g. by the use ofdummy packets), and the emulating of a realistic IP call and the QoSmeasurements will succeed even if packet losses occured.

In an IP call, where realtime speech is transferred, there normallyoccur talkspurts and silent periods (pauses). This is due to the factthan when one part of the IP call speaks, the other party normally issilent. For some VoIP terminals (wireless terminal, telephones), VAD(Voice Activity Detection) detectors have been developed, which operateso that when the level of a speech signal coming into the VAD detectorfalls below a specific limit (speaker is silent), IP packets will nolonger be transmitted to the receiving end. In this case, datatransmission band is saved.

Next, the description of the invention will be supplemented bypresenting how for performing QoS measurements an IP call is emulatedaccording to the invention, the parties of which have a VAD function intheir VoIP terminals. IP packets are now transmitted from the first hostto the second host still at intervals of Δt_(ti), but when an amount ofN_(ts) IP packets have been transmitted, a pause is made in thetransmitting of IP packets that will last for a period of N_(sp)Δt_(ti).After this, a new value is allotted for N_(ts) and IP packets aretransmitted for a period of N_(ts)Δt_(ti). Then, a new value is allottedfor N_(sp) and a pause is again made in the transmitting of IP packetsfor a period of N_(sp)Δt_(ti) and so on. The figures N_(ts) and N_(sp)are allotted from random distribution functions P(N_(ts)) and P(N_(sp))respectively, of which P(N_(ts)) emulates the distribution of thelengths of talkspurts and P(N_(sp)) the distribution of the lengths ofsilent periods in a real IP call. The material for forming thedistributions P(N_(ts)) and P(N_(sp)) has been obtained, for example, bymeasuring lengths of talkspurts and pauses in real IP calls.

In practice, the values of N_(ts) and N_(sp) can be allotted for eachtalkspurt and silent period independently irrespective of each other inthe first and second hosts. And since the information about the number Nof the packets transmitted has already before the commencement of QoSmeasurements been delivered from the first host to the second, the totalnumber of IP packets transmitted in both directions will tally.Alternatively, the values of N_(ts) and N_(sp) can only be allotted inthe first host, in which case the transmission of IP packets returned bythe second host to the first host can be timed for a time period when IPpackets are not arriving at the second host. So here the second host “islistening” whether IP packets are coming in and, if they are not, thesecond host starts the returning of the IP packets that are in thebuffer, to the first host. In practice, “listening” can be implemented,for example, so that if IP packets have not arrived at the second hostwithin a specific time (e.g. buffer delay Δt_(buf)), the second hostconcludes that the first host has a silent period going, whereupon itstarts the returning of IP packets to the first host.

This description has above concentrated on describing the emulating ofan IP call and the performing of the QoS measurements of the IP call.Because, in a real IP call, UDP is used where no retransmissions andacknowledgements are used, naturally these do not occur in thedescription of the invention either. However, in an IP call setup, areliable protocol must be used, whereupon the retransmissions andacknowledgements of packets become of interest. Well-known VoIPsignalling protocols are, among others, H.323 and SIP (SessionInitiation Protocol). Signalling protocols enable in a call setup, forexample, the fact that a VoIP terminal (first host) that is making an IPcall and a VoIP terminal (second host) that answers the IP call cancommunicate to each other what type of codec each of the call party hasin its use. For example, in H.323, most of the signalling used in a callsetup takes place by using a reliable protocol, TCP. According to theinvention, the setting up of an IP call is emulated by sending one ormore IP packets from the first host to the second, depending on thesignalling protocol to be emulated. Said IP packet used for emulatingthe call setup is otherwise similar to the IP packet 300 describedabove, but instead of the UDP-header it comprises a TCP header. Thus, inemulating a call setup, IP packets are preferably transmitted by usingTCP over IP. A TCP header typically comprises, among other things,information that can be used in retransmitting lost IP packets.

In emulating a call setup, always after receiving an IP packettransmitted by the first host the second host immediately transmits thesame IP packet back to the first host. Now, the call setup time can bemeasured, which is the time that is consumed from the transmitting ofthe first IP packet to the receiving of the last IP packet at the firsthost. Alternatively, it is possible to transmit from the first host onlyone IP packet and wait for it to return from the second host. When thereturned IP packet is received at the first host, the call setup timecan now be approximated by multiplying the time between the transmittingof the IP packet and the receiving of the returned IP packet, e.g. bysome number suitable for the purpose. In determining the call setuptime, the time stamps TS₂ and TS₃ are not necessarily needed at all,because the IP packet is transmitted back immediately after arriving atthe second host. The time between the transmitting of the IP packet andthe receiving of the returned IP packet is obtained by subtracting thetime stamp TS₁ from the time stamp TS₄.

Naturally, the actual emulating of an IP call and the QoS measurementsof the IP call will be commenced only after the emulating of signallingrelated to the call setup has been completed.

FIG. 6 shows hardware suitable for implementing the invention. Thehardware comprises a first host 101 and a second host 102, as well as anIP network 103 between the hosts. The hosts can be, e.g. PCs that can becoupled to the IP network 103, for example, with a network access card(not shown in the figure). The first and second hosts comprise a unitMCU (Master Controlling Unit) that controls the host, as well as amemory MEM. The MCU can be, e.g. a microprocessor. Blocks 701-709 arefunctional blocks, wherein the MCU is arranged to carry out specificactivities on the basis of a program stored in the MEM of the host. Inthe block 701, a time stamp data TS₁ is stored in the IP packets to betransmitted according to a clock CL of the first host just beforetransmitting, and a sequence number data SEQ₁. In the block 702, the IPpackets are transmitted to the second host 102 through the IP network103. In the block 705, the second host 102 receives the IP packetstransmitted by the first host 101, wherein, in the block 706, a timestamp data TS₂ is stored according to the clock CL of the system and asequence number data SEQ₂. In the block 707, the time stamp and sequencenumber data of the received IP packets TS₁, SEQ₁, TS₂ and SEQ₂ arecopied in the IP packets waiting to be transmitted in a buffer. In theblock 708, a time stamp data TS₃ is stored in the IP packets to betransmitted to the first host according to the clock CL of the secondhost just before transmitting. In the block 709, the IP packets aretransmitted to the first host 101 through the IP network 103. In theblock 703, the first host receives the IP packets transmitted by thesecond host 102 wherein, in the block 704, a time stamp data TS₄ isstored according to the clock CL of the first host.

In practice, in the memory MEM of the hosts, there is a storage areawherein the MCU typically stores the content of each IP packet to betransmitted (time stamp and sequence number data). Thus, in transmittingan IP packet it is just this content of the storage area that is sent tothe receiving end. By said storage area is meant, for example, thebuffer in the second host mentioned above, wherein the IP packets arewaiting to be transmitted to the first host. At the receiving end, theMCU stores the data of the received IP packets in its memory MEM, in afile, for a later analysis, such as for calculating the QoS parameters.

Thus, the essential parts of the invention can be implementedprogrammably. The computer program products in question stored in thememories MEM of the hosts can be programmed in a programming languagesuitable for the purpose, such as C programming language.

Because the invention provides means for emulating more accurately arealistic IP call at an application level with signalling and symmetricuniform IP packet streams than is known from solutions according toprior art, the invention enables the carrying out of the QoSmeasurements of an IP call more reliably than the known solutions. Inthe arrangement according to the invention, error situations of an IPnetwork are also prepared for, whereupon with the arrangement accordingto the invention reliable QoS measurements can also be carried out whenIP packets of an IP call are lost along the way or when they arrive atthe receiving end too late.

Although above, in the description of the invention, an arrangement wasdescribed which comprises two hosts and a packet network between them,there can also be more hosts. Thus, from a first host a stream of IPpackets can be transmitted to two or more second hosts, which will allreturn the IP packets transmitted by the first host. For example, inthis way, it is possible to emulate an IP group call, which is made fromone VoIP terminal to two or more VoIP terminals and carry out the QoSmeasurements. Furthermore, according to the invention, it is possible toemulate more than one IP call simultaneously or nonsimultaneously andthus, carry out the QoS measurements using several different pairs ofhosts.

This description presents the implementation and embodiments of thepresent invention, with the help of examples. For a person skilled inthe it is apparent that the present invention is not restricted todetails of the embodiments presented above, and that the invention canalso be implemented in another form without deviating from thecharacteristics of the invention. The embodiments presented above shouldbe considered illustrative, but not restricting. Thus, the possibilitiesof implementing and using the invention are only restricted by theenclosed claims. Consequently, the various options of implementing theinvention as determined by the claims, including the equivalentimplementations, also belong to the scope of the invention.

1. A method comprising: transmitting a set of packets from the firstnetwork element through the packet network to the second networkelement; receiving at least part of the transmitted packets at thesecond network element; transmitting the received packets from thesecond network element through the packet network back to the firstnetwork element in response to the receiving of the packets at thesecond network element, wherein the method further comprises:transmitting each one of said transmitted packets arrived at the secondnetwork element in a return transmission back to the first networkelement only after a delay from the receiving of the packet at thesecond network element; storing in each one of said transmitted packetsfrom the first network element, in connection with the transmitting ofthe packet, a first time information and a first sequence number data;storing in each one of said received packets at the second networkelement, in connection with the receiving of the packet, a second timeinformation and a second sequence number data; further storing at thesecond network element in each of said received packets to be returnedto the first network element, in connection with the return transmissionof the packet, a third time information; storing at the first networkelement in each of said packets returned to the first network element,in connection with the receiving of the returned packets, a fourth timeinformation; and determining on the basis of said time information andsequence number data values for a set of parameters describing qualityof service for determining the quality of service.
 2. A method accordingto claim 1, wherein the method further comprises the steps of:transmitting said set of packets from the first network element throughthe packet network to the second network element as a uniform stream ofpackets; and in response to the receiving of the packets at the secondnetwork element, transmitting the received packets to the first networkelement as a uniform stream of packets emulating a real internetprotocol call at an application level for determining the quality ofservice.
 3. A method according to claim 1, wherein, in the method, thepackets transmitted are internet protocol packets that correspond insize to internet protocol packets transmitted in a real Internetprotocol call.
 4. A method according to claim 1, wherein, intransmitting a packet, user datagram protocol over internet protocol isused.
 5. A method according to claim 1, wherein said network elementsare computers.
 6. A method according to claim 1, wherein the methodcomprises for emulating a group call, the step of transmitting from thefirst network element through the packet network a set of packets to aset of second network elements, which, in response to the receiving ofthe packets, return the packets they have received back to the firstnetwork element.
 7. A method according to claim 1, wherein the methodcomprises using more than one network element pair, formed by the firstand second network elements, for emulating more than one internetprotocol call.
 8. A method according to claim 1, wherein the methodcomprises emulating the call setup of an Internet protocol call bytransmitting before transmitting said set of packets at least one packetfrom the first network element through the packet network to the secondnetwork element and by returning said at least one packet back to thefirst network element immediately after it has arrived at said secondnetwork element.
 9. A method according to claim 8, wherein, intransmitting said at least one packet, transmission control protocolover internet protocol is used.
 10. A method according to claim 1,wherein when the second network element is about to return the packetsit has received from the first network element in a case, where thesecond network element lacks the packet to be returned, a filling packetis transmitted from the second network element to the first networkelement for maintaining a uniform stream of packets.
 11. A methodaccording to claim 1, wherein the method comprises transmitting firstsaid set of packets from the first network element through the packetnetwork to the second network element, after which a pause of a specificlength is made in the transmitting of the packets, after which pause asecond set of packets is transmitted from the first network elementthrough the packet network to the second network element for emulatingthe talkspurts and silence periods of an internet protocol call.
 12. Asystem comprising: a first transmitter for transmitting a set of packetsfrom a first network element through the packet network to the secondnetwork element, and the second network element comprises: a receiverfor receiving at least part of the transmitted packets at the secondnetwork element; a second transmitter for transmitting the receivedpackets from the second network element through the packet network backto the first network element in response to the receiving of the packetsat the second network element, wherein the second transmitter is fortransmitting each of said received packets arrived at the second networkelement in a return transmission back to the first network element onlyafter a delay from the receiving of the packet at the second networkelement, said second network element further comprising a memory forstoring each one of said received packets arrived at the second networkelement from the first network element having a first time informationand a first sequence number data for return to the first network elementin connection with the return transmission of the received packets witha second time information indicator of a time of receipt at the secondnetwork element and with a third time information indicative of a timeof transmission from the second network element and a second sequencenumber data for storage in the first network element along with a fourthtime information indicative of a time of reception by the first networkelement so that, based on a determination from said time information andsequence number data, values for a set of parameters describing qualityof service are obtained for determining quality of service.
 13. A systemaccording to claim 12, wherein the system is configured to emulate thetwo-way information flow of an internet protocol call for determiningthe quality of service.
 14. A network element comprising: a receiver forreceiving packets transmitted from a first network element through apacket network; a transmitter for transmitting the received packetsthrough the packet network back to the first network element in responseto the receiving of the packets at the network element and fortransmitting each one of said received packets arrived at the networkelement in a return transmission back to the first network element onlyafter a delay from the receiving of the packets at the network element,said network element further comprising a memory for storing each one ofsaid packets received from the first network element having a first timeinformation and a first sequence number data for return to the firstnetwork element in connection with the return transmission of thepackets with a second time information indicative of a time of receiptof the packet and with a third time information indicative of a time ofthe return transmission and a second sequence number data for storage inthe first network element along with a fourth time informationindicative of a time of reception of the return transmission by thefirst network element so that, based on a determination from said timeinformation and sequence number data, values for a set of parametersdescribing quality of service are obtained for determining quality ofservice.
 15. A network element according to claim 14, wherein thenetwork element—arranged to emulate the information flow of an internetprotocol call for determining quality of service.
 16. A computer programstored on a computer readable medium executable in the network elementcomprising program code: for receiving packets transmitted from a firstnetwork element through a packet network; for transmitting the receivedpackets through the packet network back to the first network element inresponse to the receiving of the packets at the network element, whereinthe computer program product comprises a program code: for transmittingeach one of said received packets arrived at the network element in areturn transmission back to the first network element only after a delayfrom the receiving of the packets at the network element, said networkelement further comprising a memory for storing each one of said packetsreceived from the first network element having a first time informationand a first sequence number data for return to the first network elementin connection with the return transmission of the packets with a secondtime information indicative of a time of receipt of a second networkelement and with a third time information indicative of a time of thereturn transmission from the second network and a second sequence numberdata for storage in the first network element along with a fourth timeinformation indicative of a time of reception of the return transmissionby the first network element so that, based on a determination from saidtime information and sequence number data, values for a set ofparameters describing quality of service are obtained for determiningquality of service.
 17. A computer program product according to claim16, wherein the computer program product is arranged to emulate theinformation flow of an internet protocol call for determining Quality ofService.
 18. A network element comprising: a transmitter fortransmitting a set of packets from said network element through a packetnetwork to a second network element; and a receiver for receiving backat least one of said transmitted packets as a returned packet in areturn transmission from said second network element through the packetnetwork after receipt at the second network element of one or more ofsaid set of transmitted after a delay from the receiving of the packetsat the second network element, wherein each packet of said set ofpackets sent from the transmitted network element includes a first timeinformation and a first sequence number data for use in the secondnetwork element in storing a second time information indicator and asecond sequence number data and for storing at the second networkelement in said returned packet, a third time information, wherein saidnetwork element further comprises a memory for storing with eachreturned packet a fourth time information and determining on the basisof said time information and sequence number data values a set ofparameters describing quality of service.
 19. A network elementaccording to claim 18, wherein the packets transmitted are internetprotocol packets that correspond in size to internet protocol packetstransmitted in a real internet protocol call.
 20. A network elementaccording to claim 18, wherein the network element is configured to useuser datagram protocol over internet protocol or transmission controlprotocol over internet protocol in transmitting a packet.
 21. A networkelement according to claim 18, wherein the network element is configuredto transmit first said set of packets from the first network elementthrough the packet network to the second network element, andthereafter, to make a pause in the transmitting of the packets, andthereafter, to transmit a second set of packets from the first networkelement through the packet network to the second network element foremulating talkspurts and silence periods of an internet protocol call.22. A network element according to claim 14, wherein the packetstransmitted are internet protocol packets that correspond in size tointernet protocol packets transmitted in a real internet protocol call.23. A network element according to claim 14, wherein the network elementis configured to use user datagram protocol over internet protocol ortransmission control protocol over internet protocol in transmitting apacket.
 24. A network element according to claim 14, wherein the networkelement is configured to transmit a filling packet to the first networkelement for maintaining a uniform stream of packets in a case, where thenetwork element lacks the packet to be returned to the first networkelement.
 25. A network element according to claim 14, wherein thenetwork element comprises a buffer configured to produce said delay intransmission.
 26. A method comprising receiving at a second networkelement packets transmitted from a first network element through apacket network, transmitting the received packets from the secondnetwork element through the packet network in a return transmission backto the first network element in response to the receiving of the packetsat the second network element, wherein the method further comprises:transmitting each one of said packets received at the second networkelement back to the first network element only after a delay from thereceiving of the packet at the second network, and storing each one ofsaid packets received from the first network element having a first timeinformation and a first sequence number data for return to the firstnetwork element in connection with the return transmission of the packetwith a second time information, a second sequence number data, and athird time information for storage in the first network element alongwith a fourth time information so that, based on the time informationand sequence number data, values for a set of parameters describingquality of service are obtained for determining quality of service.